
// 用户信息模型
// @author: fangjiehua	2014.9.9

var mongoose 	= require('mongoose');
var Schema 		= mongoose.Schema;
var env 		= process.env.NODE_ENV || 'development';
var ObjectId 	= Schema.Types.ObjectId;

//var config 		= require('../../config/config')[env];

//_id累加器
//var Counter 	= require('../controllers/Counter');

var UserSchema 	= new Schema({
	
	//token
	imtoken			: { type: String, require: true },
	nickname		: { type: String},
	//账号（手机号）
	mobile			: { type: String, require: true },
	//账号（手机号）
	userId			: { type: String, require: true },
	clientNumber 	: { type: String },
	//密码，加密保存
	clientPassword 	: { type: String },
	clientType 		: { type: Number },
	createDate 		: { type: String },
	friendlyName 	: { type: String},
	groupList		: [{type: String}]

}); 

var user = mongoose.model('User', UserSchema);
exports.User = user;

/*
//account字段的检验
//errorCode: 1=账号格式不是手机号码。2=账号已经被使用。3=昵称已经被使用。
UserSchema.path('mobile').validate(function (account, done){

	//如果当前文档是新建或者该字段曾被修改过
	if (this.isNew || this.isModified('mobile')){
		//检查账号是否是手机号码格式
		var regExp = /^1[3|4|5|8][0-9]\d{4,8}$]/;
		if ( !regExp.test(account) ){
			done(true);
		}else{
			done(false);
		}
	}else{
		done(true);
	}

}, "1");

UserSchema.path('mobile').validate(function (account, done){

	//如果当前文档是新建或者该字段曾被修改过
	if ((this.isNew || this.isModified('mobile')) && this.role !=3){
		//查询该用户是否存在
		user.find({account: account}, function (err, users){

			done(!err && users.length === 0);
		});
	}else{
		done(true);
	}

}, "2");

*/

//save操作的中间件
//UserSchema.pre('save', function (next){
//
//	console.log('user model pre save');
//	self = this;
//	//密码加密
//	//this.password = common.encrypt(this.password, config.session_secret);
//	if (self._id){
//		next();
//	}else{
//		Counter.getIdOf('user',function (err, id){
//			console.log('user model self id='+id[0]);
//			self._id = id;
//			next(err);
//		});
//	}
//});



